1. Technical Field
The invention relates to technology dependent transformations for design automation and more particularly to technology dependent CMOS transistor level transformations where user specifies the portion or portions of the input design specification to be represented at the transistor level and the transistor level type e.g. cascode family, NORA logic etc. It also relates to SOI gate or transistor-level synthesis.
2. Glossary of Terms
A cluster is the single organizational component of a logic synthesis database. It has input and output terminals, which allow connection to other clusters by nets. Each cluster is designated by a technology type e.g. CMOS push pull cascode family or SOI dynamic pre-charge evaluation logic, which may be a primitive or may reference a definition in terms of other clusters. Thus, a hierarchy of clusters can be used and an instance of a high-level cluster type, may be treated as a single cluster or expanded. These clusters are mapped into target library cells or transistor level representation. A cluster may be modified into fewer or more clusters with a set of transformations to meet constraints e.g. number of maximum fan-ins to a cluster or maximum number of series stack of inputs.
A Component Instantiation implies a block of hierarchy within a design entity containing a unique instance of another section of design defined by another design entity. In VHDL or Verilog, etc. a component instantiation statement and corresponding specification may be used to define the instance of a gate from a technology library and identify its connections, respectively.
Control Logic tends to be characterized by complex, unpredictable interrelationships of signals. Such logic usually contains a large amount of redundancy, which decreases testability, requires more connections than necessary, increases area and produces long and slow paths.
A Covering Algorithm, sometimes called mapping or technology mapping is the implementation of a generic Boolean network using a library of technology dependent gates/transistor clusters.
Data Flow Logic is characterized by highly parallel and well-known or well-understood combinatorial algorithms, such as adders and multipliers, and may include the most critical timing path for the design.
Expressions are the product of parsing register transfer level statements. They correspond one for one with source level statements and are stored as a string of tokens on a cluster. They are in prefix form (postfix form would be equivalent), i.e. in the string form of a parse tree.
Digital design Synthesis is used to mean the synthesis of a technology dependent model from a register transfer level description or from interconnected functional blocks to result in standard-cell mapped design from a target library, or result in a combination of standard-cell mapped design from a target library and a transistor level representation for part or all of the input design specification.
A Netlist is a detailed interconnection listing of clusters in the target technology from which automated logic diagrams may be produced for integrated circuit fabrication.
Primitives are technology independent gates, e.g. AND gates, ORs, NOTs, etc.
A Register Transfer Level Description is a high level abstraction of a logic design. It comprises logic functions to be implemented in an integrated circuit. Interface constraints and a technology database may be specified. An example of a language that may be used for RTL description is VHDL or Verilog, etc.
PI is Primary Inputs, PO is primary outputs, inputs to a cluster coming from neighboring clusters are internal inputs.
ALU is Arithmetic Logic Unit, a portion of the Microprocessor.
.lib is the well known Synopsys library format.
CMOS is complementry Metal Oxide Semiconductor technology.
SOI is silicon-on-Insulator (IC) integrated circuit where the insulator may be oxide, nitride, carbide, of Silicon or single crystal Sapphire or the like.
NORA is no race condition CMOS transistor level design.
FSCL is Folded Source Coupled Logic.
Cascode family is represented by Differential Cascode Voltage or current switch, push pull cascode logic and well known to integrated circuit designers. A dual rail logic is when both input and it's complement is utilized in a cluster for transistor level representation.
Transformation is a term for a collection or suite of programs which operate on expressions or manipulate clusters representing boolean functions and their connections.
3. Description of the Related Art
The design of very large scale integration (VLSI) circuits presents a number of challenges beyond those encountered in the design and development of smaller integrated circuit chips. A longer manufacturing cycle, tighter timing requirements, shorter machine cycle, and a larger number of gates per designer all must be overcome while meeting a short development time budget.
Logic synthesis is a process used to convert a technology independent logic description into a netlist which may be directly implemented in a technology and thereby speed circuit development. Logic synthesis addresses many problems, one of them being the conversion of a more-or-less technology independent register transfer level (RTL) design model to a technology dependent model. Computer programs that perform logic synthesis are known, however these computer programs generally use mathematical techniques that do not have general solutions. Faced with the lack of a rigorous mathematical solution, logic design engineers have had to develop techniques which may not be mathematically rigorous but which do produce acceptable results. Such techniques generally involve compromises and practical limitations. Logic synthesis can also be used to generate a technology dependent model from a very high level (e.g. higher than RTL) description or to convert a technology dependent design to a different technology.
This invention relates to the design of integrated circuits (ICs) in general, and in particular to an automated system and process for creating highly optimized gate and transistor-level building blocks that incorporate design-specific optimization goals and yields significant benefits for most design environments, such as, COT/COL, ASICS, ASP, etc. for SOI and for user chosen blocks to be represented in CMOS transistor level design during technology dependent digital design synthesis. For CMOS and SOI user also selects the type of transistor level representation type.
Over the last four decades, design and manufacturing of ICs has evolved into a multi-billion dollar industry. IC designs can be broadly classified into two major categories: (i) storage designs, which store digital data; and (ii) logic designs, which manipulate digital data.
The present invention described herein is applicable to the category of logic ICs or parts thereof, that deal broadly with data manipulation and several sub-categories thereof, viz., ASICs, ASSPs, COT/COL, etc.
The proliferation of digital ICs and the diversity of applications using ICs have led to the development and use of various types of metrics for evaluating the cost and quality of developed ICs. Die size, performance (i.e., speed), and power consumption have evolved as three of the most commonly used metrics for measuring the quality of IC designs. Other metrics, such as, for example, noise, signal integrity, reliability, etc. are gaining in importance. Time-to-market or design cycle time, and expected sales volume have evolved as two other commonly used business metrics. It is generally observed that the time-to-market period is steadily decreasing for nearly all digital ICs.
The importance of quality metrics, such as those mentioned above, is generally application-dependent, and thus varies from one design to another. Two of the most commonly used combinations of metrics are: (i) performance and power, and (ii) die size and power.
Due to ever-increasing time-to-market pressures, highly automated IC design processes have been developed that can be broadly categorized as: (i) fully pre-fabricated, highly programmable component-based design process (e.g., FPGA, etc.); (ii) partially pre-fabricated platform (e.g., gate array) based design processes, which, upon completion, require only that the metal layers be fabricated, and (iii) design processes that do not rely on any pre-fabricated components or platforms, but instead, use fixed building blocks (standard cells) with pre-defined schematic structure and layout, and fully customizable interconnections between the blocks wherein at the completion of the design process, all components (layers) in the design need to be fabricated from scratch. Among these, the last category of IC designs typically offers the highest performance, the smallest die size, and the lowest power among designs created using automated tools. In order to limit the complexity of the design process to manageable levels, traditionally, standard cell libraries are used in such automated design flows. Numerous automated IC design tools, e.g., simulation, synthesis, place-and-route, extraction, verification, etc., suitable for utilizing with standard cell libraries, have been developed. The synthesis tools accept as input a given design description in some suitable format (e.g., register-transfer level (RTL), behavioral, etc.), and generate a netlist. The netlist is simply an interconnection of the pre-defined cells in the standard-cell library. Place-and-route tools create a layout utilizing the layouts of the pre-defined standard cells such that the interconnections between the cells, as specified in the netlist, are preserved. Place-and-route tools also take into account the detailed timing issues that arise from the actual location of the various cells in the layout. A typical flow diagram of a process for creating IC designs using such standard-cell libraries is shown in FIG. 1.
A key problem with the existing approach of automated IC design processes is that designers, using synthesis tools, are forced to use components from a static, pre-defined standard-cell library of cells developed to be applicable to a wide variety of digital ICs. As a result, the cells tend to be relatively small and general-purpose. Standard-cells, such as basic Boolean gates: AND, OR, NAND, NOR, XOR, XNOR, AND-OR-INVERT, OR-AND-INVERT, MUX, etc. However, for a given design, the forced use of such pre-defined standard cells leads to poor quality in the final design as compared to full-custom (hand-crafted) IC design processes and judged by the aforementioned quality metrics. Particular attention has been drawn to this fact by recent comparisons of designs created by automated flows versus designs created using a full-custom, heavily manual design process.
Therefore, although automated tools and flows speed up the design creation process, the relatively poor quality of resultant designs as judged against the quality that can be achieved with a manual re-design of the same part, has major cost and business implications. Increased die-size and increased power consumption by as much a factor of 10 or more are two major and obvious such implications. Reduced performance of the automated design, by as much as a factor of 2, also has significant implications in the marketplace. Even a cursory comparison of handcrafted designs to automatically generated design shows a noticeable difference in the usage patterns of various layers in the physical design. Handcrafted designs tend to use all the layers, including diffusion and polysilicon layers, very effectively and efficiently, while automatically generated designs tend to use diffusion and polysilicon layers relatively sparsely while using the metal layers profusely. Recently, it has been noted by many designers and researchers that this profusion of metal interconnects in automatically generated designs constitutes an increasing problem (and bottleneck) in terms of performance and power consumption, as IC designs into deep-sub-micron geometries approaching 0.10 micron or less.
Prior attempts at improving the quality of automatically generated designs, over the past two decades, have focused primarily on automatic layout synthesis. A key constraint faced by automatic layout synthesis methods is that they are primarily appropriate for layouts of relatively small transistor-level designs. Attempts to apply the same automatic layout synthesis methods to the creation of VLSI designs—popularly known as silicon compilation in the early 1980's was pursued without such success for many years, and was eventually dropped.
More recently, a body of work has been reported in the area of automated creation of transistor-level designs. These efforts are primarily academic in nature, with a heavy focus on the use of pass-transistor logic (PTL). The vast majority of industrial standard-cell based designs continue to use static CMOS style of design, due to various problems inherent in PTL. Key among such problems is the loss of one Vt (threshold voltage of a transistor, modified by appropriate body effects) while passing a signal (high or low voltage) through pass transistors, which can easily lead to slow/improper functioning of subsequent stages of transistors driven by a pass transistor. A relatively smaller portion of the efforts that apply to static CMOS module generation are focused on simply minimizing transistor count in the transistor-level modules created. The prior automated IC design processes do not take into account performance of the resultant modules as well as a host of real-life constraints that must be taken into account while creating transistor-level modules used in actual designs. Such real-life constraints include (i) tolerable delays from individual inputs to output(s) of modules created at the transistor level, (ii) maximum depth of n- and p-transistor stacks in the modules created, (iii) tolerances on transition times of the signals at the outputs of modules created, (iv) desired drive-strength of resultant module, (v) limits on capacitive loads at inputs of the module created, etc.
SOI designs are affected by floating body effects where the delay of a gate or a transistor level design continues to change over long period of simulation time or from testing fabricated SOI cells over long times. This can lead to functional failure if not accounted for.